#include <bits/stdc++.h>

using namespace std;

const int N=1e2+10;

int n,m;
int f[N][N];
int a[N];

int main() 
{
	cin>>n>>m;
	
	memset(f,0x3f,sizeof f);
	for(int i=1;i<=n;i++) f[i][i]=0;
	
	for(int i=1;i<n;i++)
	{
		int u,v,w;cin>>u>>v>>w;
		f[u][v]=min(f[u][v],w);
		f[v][u]=min(f[v][u],w);
	}
	
	for(int i=1;i<=m;i++) cin>>a[i];
	
	for(int k=1;k<=n;k++)
	{
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=n;j++) f[i][j]=min(f[i][j],f[i][k]+f[k][j]);
		}
	}
	
//	for(int i=1;i<=n;i++)
//	{
//		for(int j=1;j<=n;j++) cout<<f[i][j]<<" ";
//		cout<<endl;
//	}
	
	for(int i=1;i<=m;i++)
	{
		int t[N]={0};int cnt=0; 
		for(int j=1;j<=m;j++)
		{
			if(i!=j) t[++cnt]=a[j];
		}
		long long sum=0;
		for(int j=1;j<cnt;j++)
		{
			sum+=f[t[j]][t[j+1]];
		}
		cout<<sum<<" ";
	}
	
	return 0;
}
